Integrated circuits (ICs) are designed today with computers using computer programs known as IC design tools. With these tools, a circuit designer enters geometrical shapes (e.g., polygons) of an IC design into a computer and manipulates the shapes to produce a simulated layout of the circuit. The geometrical shapes form circuit elements, such as transistors, resistors, capacitors, and wires. These shapes represent material in an IC on a physical layer (e.g., metal, diffusion, or polysilicon) with each material typically shown in a different color. From this simulated layout, the design tool generates data for producing photolithographic masks that are then used for fabricating the IC.
FIG. 1A shows an example of a transistor 10 represented as several overlapping polygons. The transistor includes a polysilicon layer 12 that forms a gate region 15 (shown generally in dashed lines) and a diffusion layer 14 that forms a source and drain of the transistor 10. The electronics industry has amassed a large inventory of IC designs that include polygon-based elements, such as the transistor 10. More recently, the industry is moving away from polygon-based layouts in favor of object-based layouts. An object-based layout represents circuit elements as objects, which are containers encapsulating the geometric properties of the circuit elements for each layer in the IC. Object-based layouts are preferable because related geometries on multiple layers can be grouped together into a single cohesive unit enabling devices to be manipulated at a higher level of abstraction than equivalent polygon-based layouts. Additionally, generating a netlist (i.e., a representation of a design as a list of electrical devices and their interconnections, but with limited geometrical information) is explicit in the object-based layout, rather than requiring an extraction process as in a polygon-based layout.
Recognition devices have been developed to convert the existing polygon-based layouts to object-based layouts. Current recognition devices, however, do not allow for converting wires in polygonal form to path-based wire elements that have a centerline and a width. An example of a wire 16 in polygonal form is shown in FIG. 1B. The wire 16 is defined by its perimeter indicated by vertices V0-V7. FIG. 1C shows the same wire 16 in a path-based form. The wire 16 is an object having attributes of a centerline 24 (shown in dashed lines) and a width. Four vertices V0-V3 define the centerline. Efficiently converting wires from polygonal to path-based form has not heretofore been achieved.
FIGS. 2A and 2B show a further example of difficulties that may occur when converting a polygonal wire to a path-based wire. FIG. 2A shows a wire 26 that has device geometries 28, 30, 32, and 34 overlapping the wire. During the recognition process, the device geometries are removed leaving a damaged wire 26 shown in FIG. 2B. There are four common types of wire damage: (1) Removal of device geometry 28 that eclipses an interior portion 36 of the wire; (2) Removal of device geometry 30 that eclipses an edge 38 of the wire; (3) Removal of device geometry 32 that eclipses a corner 40 of the wire; and (4) removal of device geometry 34 that eclipses an end 42 of the wire. Other types of wire damage may also exist.
Accordingly, it is desirable to provide a recognition device for converting polygon-based wires to a path-based wires. It is also desirable to provide such a recognition device that detects and repairs damaged wire geometries.